package com.learn.service;

import dev.langchain4j.data.message.ChatMessage;
import reactor.core.publisher.Flux;

import java.util.List;
import java.util.Map;

public interface AiChatService {
    String aiSimpleChat(String question);
    
    /**
     * 流式聊天
     * @param question 用户问题
     * @return 流式响应
     */
    Flux<String> streamChat(String question);
    
    /**
     * 带对话历史的聊天
     * @param messages 对话历史
     * @return AI回答
     */
    String chat(List<Map<String, String>> messages);
    
    /**
     * 流式对话，支持对话历史
     * @param messages 对话历史
     * @return 流式响应
     */
    Flux<String> streamChat(List<Map<String, String>> messages);
    
    /**
     * 获取对话历史
     * @param conversationId 对话ID
     * @return 对话历史
     */
    List<ChatMessage> getConversationHistory(String conversationId);
    
    /**
     * 清除对话历史
     * @param conversationId 对话ID
     */
    void clearConversationHistory(String conversationId);
}